---
sidebar_position: 11
---

# Удалённый репозиторий

Пока что мы обсуждали использование Git только на локальной машине. Однако мы можем хранить историю коммитов удалённых репозиториев, которую можно отслеживать и обновлять.

:::note Команда `git remote`

Управление набором  отслеживаемых удаленных репозиториев.

Документация [здесь](https://git-scm.com/docs/git-remote).
:::

`git remote -v` выводит список удалённых репозиториев, которые мы отслеживаем, и имена, которые мы им присвоили.

:::note Команда `git clone`

Клонировать репозиторий в новый каталог.

Документация [здесь](https://git-scm.com/docs/git-clone).
:::

При использовании команды `git clone <url репозитория>` мы не только загружаем себе копию репозитория, но и неявно отслеживаем удалённый сервер, который находится по указанному адресу и которому присваивается имя `origin`.

Наиболее употребляемые команды:

- `git remote add <имя> <url>` — добавляет удалённый репозиторий с заданным именем;
- `git remote remove <имя>` — удаляет удалённый репозиторий с заданным именем;
- `git remote rename <старое имя> <новое имя>` — переименовывает удалённый репозиторий;
- `git remote set-url <имя> <url>` — присваивает репозиторию с именем новый адрес;
- `git remote show <имя>` — показывает информацию о репозитории.

:::note Команда `git fetch`

Загрузка объектов и ссылок из другого репозитория.

Документация [здесь](https://git-scm.com/docs/git-fetch).
:::

:::note Команда `git pull`

Извлечение и интеграция с другим репозиторием или локальной веткой.

Документация [здесь](https://git-scm.com/docs/git-pull).
:::

:::note Команда `git push`

Обновление удаленных ссылок вместе со связанными объектами.

Документация [здесь](https://git-scm.com/docs/git-push).
:::

Следующие команды работают с удалёнными ветками:

- `git fetch <имя> <ветка>` — получает данные из ветки заданного репозитория, но не сливает изменения;
- `git pull <имя> <ветка>` — сливает данные из ветки заданного репозитория;
- `git push <имя> <ветка>` — отправляет изменения в ветку заданного репозитория. Если локальная ветка уже отслеживает удалённую, то можно использовать просто `git push` или `git pull`.

*Иллюстрация `git push` и `git pull` (источник: [tproger.ru](https://tproger.ru/translations/beginner-git-cheatsheet/))*:

![git push и git pull](images/push-pull.jpeg)

Таким образом несколько людей могут запрашивать изменения с сервера, делать изменения в локальных копиях и затем отправлять их на удалённый сервер, что позволяет взаимодействовать друг с другом в пределах одного репозитория.

Работа с удаленным репозиторием предстоит в [лабораторной работе](../../../../labs/gitcicd/intro.md).

## Атрибуция

При подготовке статьи использован материал:

- [tproger.ru](https://tproger.ru/translations/beginner-git-cheatsheet/#part2)
